#include<stdio.h>
//
/*双指针法：使用两个指针 left 和 right。

right 指针遍历整个数组。

left 指针指向下一个可以放置非 val 元素的位置。

遍历数组：当 nums[right] 不等于 val 时，将其复制到 nums[left]，并递增 left。

/*双指针法：使用两个指针 left 和 right。

right 指针遍历整个数组。

left 指针指向下一个可以放置非 val 元素的位置。

遍历数组：当 nums[right] 不等于 val 时，将其复制到 nums[left]，并递增 left。

返回值：left 即为新数组的长度（即不等于 val 的元素数量）。*/
int removeElement(int* nums, int numsSize, int val) {
    int left = 0;
    for (int right = 0; right < numsSize; right++) {
        if (nums[right] != val) {
            nums[left] = nums[right];
            left++;
        }
    }
    return left;
}